/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package callProcs;

import bufete.BufeteView;
import java.math.BigInteger;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Juls
 */
public class ProcsInsertar {
    java.sql.Connection  con = null;
    public ProcsInsertar(){
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","socrates");
            con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","popular");
        } catch (SQLException ex) {
            Logger.getLogger(ProcsInsertar.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void insertarAsesor(String nombre, String apellido,String TelAsesor,String emailAsesor,boolean activo){
       // java.sql.Connection  con = null;
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
            String bandera=null;
            if (activo) bandera = "true";
            if (!activo) bandera = "false";
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarAsesor('"+nombre+"','"+apellido+"','"+TelAsesor+"','"+emailAsesor+"',"+bandera+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
    
     public void insertarCliente(String nombre, String apellido,String FechaNac,boolean estadoCivil,boolean sabeFirmar,int NoOrden,String NoRegistro,BigInteger dpi){
        //java.sql.Connection  con;
        try {
            String banderaEC=null;
            String banderaSF = null;
            if (estadoCivil) banderaEC = "true";
            if (!estadoCivil) banderaEC = "false";
            if (sabeFirmar) banderaSF = "true";
            if (!sabeFirmar) banderaSF = "false";
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarCliente('"+nombre+"','"+apellido+"','"+FechaNac+"',"+banderaEC+","+banderaSF+","+NoOrden+",'"+NoRegistro+"',"+dpi+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
     
          public void insertaralumno(int carne, String nombre, String apellido,Date FechaNac,boolean estadoCivil,int NoOrden,String NoRegistro,BigInteger dpi,  int direccion){
        //java.sql.Connection  con;
        try {
            String banderaEC=null;
            String fechaNac = null;
            if (estadoCivil) banderaEC = "true";
            if (!estadoCivil) banderaEC = "false";
            fechaNac = String.valueOf(FechaNac);
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarEstudiante(" + carne + "," + "'" + nombre +"'," + "'" + apellido +"',"  +FechaNac + ", " + "'" + banderaEC +"'," + "'"+ NoOrden +"',"+ NoRegistro+ "," + dpi+"," + "NULL" + ","+ direccion + ")}" );
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
     
       public void insertarDireccionEst(String Direccion,int zona ,int idMunicipio){
        
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarDireccionEstudiante('"+Direccion+"',"+zona+","+idMunicipio+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
          public void insertarDireccionCliente(String Direccion,int zona ,int idMunicipio){
        
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarDireccionCliente('"+Direccion+"',"+String.valueOf(zona)+","+String.valueOf(idMunicipio)+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    } 
     public java.sql.ResultSet verDepartementos() throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT Nombre_departamento FROM departamento");
           
            
        return rs;
     }
     
     public  java.sql.ResultSet obtenerIdDepartamento(String Departamento) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idDepartamento FROM departamento where Nombre_departamento ='"+Departamento+"'");
          //  System.out.println(Integer.parseInt(rs.toString()));
            return rs;
     }
     
     public java.sql.ResultSet verMunicipios(int idDepartamento) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT Nombre_municipio FROM municipio where Departamento_idDepartamento ="+String.valueOf(idDepartamento));
            return rs;
     }
     
     public java.sql.ResultSet obtenerIdMunicipio(String municipio , int IdDepartament) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idMunicipio FROM municipio where Nombre_municipio ='"+municipio+"' and Departamento_idDepartamento ="+String.valueOf(IdDepartament));
          //  System.out.println(Integer.parseInt(rs.toString()));
            return rs;
     }
     
     public void insertarTelefonoCliente(String Telefono,int tipo){
        //java.sql.Connection  con;
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarTelefonoCliente('"+Telefono+"',"+String.valueOf(tipo)+")}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
    
     public java.sql.ResultSet verdatosCliente(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idCliente,concat(Nombre_cliente,' ',Apellido_cliente) as nombre ,No_registro_cliente,No_orden_cliente,Dpi_cliente,d.Direccion_cliente,d.zona,t.Telefono"
                    + " FROM cliente c inner join direccion_cliente d on c.Direccion_cliente_idDireccion_cliente = d.idDireccion_cliente inner join telefonocliente t on t.Cliente_idCliente = c.idCliente where  concat(Nombre_cliente,' ',Apellido_cliente) like '%"+sentencia+"%' or concat(Nombre_cliente,' ',Apellido_cliente) = '"+sentencia+"'");
           
            
        return rs;
     }
     
     public java.sql.ResultSet verdatosCliente2(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idCliente,concat(Nombre_cliente,' ',Apellido_cliente) as nombre ,No_registro_cliente,No_orden_cliente,Dpi_cliente,d.Direccion_cliente,d.zona,t.Telefono"
                    + " FROM cliente c inner join direccion_cliente d on c.Direccion_cliente_idDireccion_cliente = d.idDireccion_cliente inner join telefonocliente t on t.Cliente_idCliente = c.idCliente where concat(Nombre_cliente,' ',Apellido_cliente) = '"+sentencia+"'");
           
            
        return rs;
     }
     
     public java.sql.ResultSet verDatosCaso(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT ca.Estudiante_NoCarne,a.NombreAsunto,t.NombreTipo,concat(c.Nombre_cliente,' ',c.Apellido_cliente) as nombre, c.No_orden_cliente,c.No_registro_cliente,c.Dpi_cliente,"
                                +" ca.Memorial,ca.Fecha_inicio,ca.Fecha_fenecido,ca.Descripcion_caso,ca.No_folio,ca.Fecha_fenecido,ca.Observaciones,d.Direccion_cliente FROM caso ca"
                                +" inner join cliente c on c.idCliente=ca.Cliente_idCliente"
                                +" inner join asunto a on a.idAsunto=ca.Asunto_idAsunto"
                                +" inner join tipo t on t.idTipo=ca.Tipo_idTipo"
                                +" inner join direccion_cliente d on d.idDireccion_cliente=c.Direccion_cliente_idDireccion_cliente"
                                +" where ca.idCaso = "+sentencia);
           
     
        return rs;
     }
     
          public java.sql.ResultSet verDatosResCaso(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT l.idCaso,l.No_folio,concat(c.Nombre_cliente,' ',c.Apellido_cliente) as nom, t.NombreTipo,a.NombreAsunto,l.Estudiante_NoCarne" 
                                +" FROM caso l "+
                                " inner join cliente c on l.Cliente_idCliente=c.idCliente "+
                                " inner join asunto a on l.Asunto_idAsunto=a.idAsunto " +
                                " inner join tipo t on l.Tipo_idTipo=t.idTipo  where l.No_folio = "+sentencia);
           
     
        return rs;
     }
          
          public java.sql.ResultSet verDatosResCaso2(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT l.idCaso,l.No_folio,concat(c.Nombre_cliente,' ',c.Apellido_cliente) as nom, t.NombreTipo,a.NombreAsunto,l.Estudiante_NoCarne" 
                                +" FROM caso l "+
                                " inner join cliente c on l.Cliente_idCliente=c.idCliente "+
                                " inner join asunto a on l.Asunto_idAsunto=a.idAsunto " +
                                " inner join tipo t on l.Tipo_idTipo=t.idTipo  where concat(c.Nombre_cliente,' ',c.Apellido_cliente) like '%"+sentencia+"%'");
           
     
        return rs;
     }
          
    public java.sql.ResultSet verdatosAlumnos(int sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT Nombre_estudiante,Apellido_estudiante,Fecha_nac_estudiante,"
                    + "Estado_civil_estudiante,NoReg_estudiante,NoOrden_estudiante,Dpi_estudiante,"
                    + "Asesor_idAsesor,Direccion_estudiante_idDireccion_estudiante"
                    + " FROM estudiante where NoCarne ="+String.valueOf(sentencia));
           
            
        return rs;
     }
    
     public java.sql.ResultSet VerAsuntosCaso() throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT idAsunto,NombreAsunto from asunto");
          //  System.out.println(Integer.parseInt(rs.toString()));
            return rs;
     }
    
    public void updtAsesordeAlumno(int carne, int idasesor) throws SQLException{
        try {
            //con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","");
           String bandera=null;
           // if (estado) bandera = "true";
            //if (!estado) bandera = "false";
              //java.sql.CallableStatement cs = con.prepareCall("{call Actualiza_estudiante("+carne+"'"+nombre+"','"+apellido+"','"+fecha+"',"+bandera+",'"+reg+"',"+orden+","+dpi+","+idasesor+""+iddir+")}");
            java.sql.CallableStatement cs = con.prepareCall("{call Actualiza_asesor_estudiante("+carne+","+idasesor+")}");
           java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void insertarNuevoCaso(String idasunto,String idtipo,String idcliente, String descripcion,String fechainicio,String nofolio,String observaciones){
        //java.sql.Connection  con;
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call InsertarCaso("+idasunto+","+idtipo+","+idcliente+",'"+descripcion+"','"+fechainicio+"',"+nofolio+",'"+observaciones+"')}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public java.sql.ResultSet verAlumnos(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT NoCarne FROM estudiante where NoCarne like '"+ sentencia+"%'");
           
            
        return rs;
     }  
    
    public void editarCaso(String idcaso, String idasunto, String idtipo, String descripcion , String fechafin, String memorial, String nofolio, String observaciones ){
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call Actualiza_caso("+idcaso+","+idasunto+","+idtipo+",'"+descripcion+"',"+fechafin+","+memorial+","+nofolio+",'"+observaciones+"')}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
            
        } catch (SQLException ex) {
            Logger.getLogger(BufeteView.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}
